home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue35 / 35COM / XDesktopImpl.pas < prev   
Pascal/Delphi Source File  |  1998-06-10  |  3KB  |  120 lines

  1. unit XDesktopImpl;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, ActiveX, Classes, Controls, Graphics, Menus, Forms, StdCtrls,
  7.   ComServ, StdVCL, AXCtrls, AxDesktop_TLB, Desktop, DeskProp;
  8.  
  9. type
  10.   TXDesktop = class(TActiveXControl, IXDesktop)
  11.   private
  12.     { Private declarations }
  13.     FDelphiControl: TDesktop;
  14.     FEvents: IXDesktopEvents;
  15.   protected
  16.     { Protected declarations }
  17.     procedure InitializeControl; override;
  18.     procedure EventSinkChanged(const EventSink: IUnknown); override;
  19.     procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
  20.     function Get_Font: Font; safecall;
  21.     function Get_ItemCount: Integer; safecall;
  22.     function Get_TextBackgroundColor: TColor; safecall;
  23.     function Get_TextColor: TColor; safecall;
  24.     procedure AboutBox; safecall;
  25.     procedure Set_Font(const Value: Font); safecall;
  26.     procedure Set_ItemCount(Value: Integer); safecall;
  27.     procedure Set_TextBackgroundColor(Value: TColor); safecall;
  28.     procedure Set_TextColor(Value: TColor); safecall;
  29.     function Get_Visible: WordBool; safecall;
  30.     procedure Set_Visible(Value: WordBool); safecall;
  31.   end;
  32.  
  33. implementation
  34.  
  35. uses SysUtils, About1;
  36.  
  37. { TXDesktop }
  38.  
  39. procedure TXDesktop.InitializeControl;
  40. begin
  41.   FDelphiControl := Control as TDesktop;
  42.   FDelphiControl.Visible := False;
  43. end;
  44.  
  45. procedure TXDesktop.EventSinkChanged(const EventSink: IUnknown);
  46. begin
  47.   FEvents := EventSink as IXDesktopEvents;
  48. end;
  49.  
  50. procedure TXDesktop.DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage);
  51. begin
  52.     DefinePropertyPage (Class_DesktopProp);
  53. end;
  54.  
  55. function TXDesktop.Get_Font: Font;
  56. begin
  57.   GetOleFont(FDelphiControl.Font, Result);
  58. end;
  59.  
  60. function TXDesktop.Get_ItemCount: Integer;
  61. begin
  62.   Result := FDelphiControl.ItemCount;
  63. end;
  64.  
  65. function TXDesktop.Get_TextBackgroundColor: TColor;
  66. begin
  67.   Result := FDelphiControl.TextBackgroundColor;
  68. end;
  69.  
  70. function TXDesktop.Get_TextColor: TColor;
  71. begin
  72.   Result := FDelphiControl.TextColor;
  73. end;
  74.  
  75. procedure TXDesktop.AboutBox;
  76. begin
  77.   ShowXDesktopAbout;
  78. end;
  79.  
  80. procedure TXDesktop.Set_Font(const Value: Font);
  81. begin
  82.   SetOleFont(FDelphiControl.Font, Value);
  83. end;
  84.  
  85. procedure TXDesktop.Set_ItemCount(Value: Integer);
  86. begin
  87.   FDelphiControl.ItemCount := Value;
  88. end;
  89.  
  90. procedure TXDesktop.Set_TextBackgroundColor(Value: TColor);
  91. begin
  92.   FDelphiControl.TextBackgroundColor := Value;
  93. end;
  94.  
  95. procedure TXDesktop.Set_TextColor(Value: TColor);
  96. begin
  97.   FDelphiControl.TextColor := Value;
  98. end;
  99.  
  100. function TXDesktop.Get_Visible: WordBool;
  101. begin
  102.   Result := FDelphiControl.Visible;
  103. end;
  104.  
  105. procedure TXDesktop.Set_Visible(Value: WordBool);
  106. begin
  107.   FDelphiControl.Visible := Value;
  108. end;
  109.  
  110. initialization
  111.   TActiveXControlFactory.Create(
  112.     ComServer,
  113.     TXDesktop,
  114.     TDesktop,
  115.     Class_XDesktop,
  116.     1,
  117.     '',
  118.     0);
  119. end.
  120.